<?php

namespace app\controller;

use think\facade\Db;
use think\facade\Request;
use app\validate\Register as RegisterValidate;

class Register
{
    public function index()
    {
        try {
            $data = Request::post();
            // 记录接收到的数据
            error_log(print_r($data, true));

            // 验证输入数据
            $validate = new RegisterValidate();
            if (!$validate->check($data)) {
                return json(['code' => 1, 'msg' => $validate->getError()]); // 返回验证错误信息
            }

            // 检查学号是否已存在
            $user = Db::name('cdydpt_user')->where('usernum', $data['usernum'])->find();
            if ($user) {
                return json(['code' => 1, 'msg' => '该学号已经被注册']); // 返回学号已注册信息
            }

            // 将新用户插入数据库
            $result = Db::name('cdydpt_user')->insert([
                'usernum'   => $data['usernum'],
                'username'  => $data['username'],
                'password'  => password_hash($data['password'], PASSWORD_BCRYPT), // 加密密码
                'userPhone' => $data['userPhone'],
                'useremail' => $data['useremail'], 
                'usertype' => 'user',
            ]);

            if ($result) {
                return json(['code' => 0, 'msg' => '注册成功', 'data' => $data]); // 返回注册成功信息
            } else {
                return json(['code' => 1, 'msg' => '注册失败']); // 返回注册失败信息
            }
        } catch (\Exception $e) {
            // 记录异常信息
            error_log($e->getMessage());
            return json(['code' => 1, 'msg' => '内部服务器错误']); // 返回服务器错误信息
        }
    }
}
